home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / mkmf / RCS / mkmf.library,v < prev    next >
Text File  |  1991-04-11  |  15KB  |  761 lines

  1. head     1.21;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @@;
  7.  
  8.  
  9. 1.21
  10. date     91.04.11.12.53.32;  author kupfer;  state Exp;
  11. branches ;
  12. next     1.20;
  13.  
  14. 1.20
  15. date     89.10.09.21.28.18;  author rab;  state Exp;
  16. branches ;
  17. next     1.19;
  18.  
  19. 1.19
  20. date     89.08.18.11.21.41;  author douglis;  state Exp;
  21. branches ;
  22. next     1.18;
  23.  
  24. 1.18
  25. date     89.08.17.11.16.03;  author douglis;  state Exp;
  26. branches ;
  27. next     1.17;
  28.  
  29. 1.17
  30. date     89.04.06.21.40.30;  author jhh;  state Exp;
  31. branches ;
  32. next     1.16;
  33.  
  34. 1.16
  35. date     88.12.31.14.45.19;  author ouster;  state Exp;
  36. branches ;
  37. next     1.15;
  38.  
  39. 1.15
  40. date     88.11.27.16.28.38;  author ouster;  state Exp;
  41. branches ;
  42. next     1.14;
  43.  
  44. 1.14
  45. date     88.10.13.09.53.20;  author ouster;  state Exp;
  46. branches ;
  47. next     1.13;
  48.  
  49. 1.13
  50. date     88.08.15.09.30.08;  author ouster;  state Exp;
  51. branches ;
  52. next     1.12;
  53.  
  54. 1.12
  55. date     88.08.13.15.07.52;  author ouster;  state Exp;
  56. branches ;
  57. next     1.11;
  58.  
  59. 1.11
  60. date     88.08.12.14.38.28;  author ouster;  state Exp;
  61. branches ;
  62. next     1.10;
  63.  
  64. 1.10
  65. date     88.07.21.11.35.05;  author douglis;  state Exp;
  66. branches ;
  67. next     1.9;
  68.  
  69. 1.9
  70. date     88.07.20.10.22.26;  author ouster;  state Exp;
  71. branches ;
  72. next     1.8;
  73.  
  74. 1.8
  75. date     88.07.02.14.34.14;  author ouster;  state Exp;
  76. branches ;
  77. next     1.7;
  78.  
  79. 1.7
  80. date     88.06.27.09.56.50;  author ouster;  state Exp;
  81. branches ;
  82. next     1.6;
  83.  
  84. 1.6
  85. date     88.06.21.09.53.10;  author ouster;  state Exp;
  86. branches ;
  87. next     1.5;
  88.  
  89. 1.5
  90. date     88.06.17.16.28.11;  author ouster;  state Exp;
  91. branches ;
  92. next     1.4;
  93.  
  94. 1.4
  95. date     88.06.17.08.51.40;  author ouster;  state Exp;
  96. branches ;
  97. next     1.3;
  98.  
  99. 1.3
  100. date     88.04.04.22.57.45;  author deboor;  state Exp;
  101. branches ;
  102. next     1.2;
  103.  
  104. 1.2
  105. date     88.04.04.22.57.16;  author deboor;  state Exp;
  106. branches ;
  107. next     1.1;
  108.  
  109. 1.1
  110. date     88.03.18.15.10.15;  author deboor;  state Exp;
  111. branches ;
  112. next     ;
  113.  
  114.  
  115. desc
  116. @Subscript for library source directories
  117. @
  118.  
  119.  
  120. 1.21
  121. log
  122. @Flush DEFTARGET: the default target is now determined by a pmake
  123. library file.
  124. @
  125. text
  126. @#!/sprite/cmds/csh -f
  127. #
  128. # A script to generate (or regenerate) a library directory  Makefile
  129. # from a prototype Makefile.  If ./Makefile.proto exists, use it, else
  130. # use a common prototype.  This script is invoked for libraries where
  131. # the sources are all in a single directory, except for machine-dependent
  132. # sources, which are in .md subdirectories
  133. #
  134. # We assume we were invoked from mkmf.  Parameters passed in from mkmf
  135. # through environment variables:
  136. #
  137. #    DOMACHINES    names of machines we are supposed to run mkmf on
  138. #    MKMFDIR        directory containing prototype makefiles
  139. #    MKMFFLAGS    arguments to all mkmfs run recursively
  140. #    MACHINES    list of machine names (e.g. "sun2 sun3"), for
  141. #            which there are machine-dependent subdirectories
  142. #            (sun3.md, spur.md, etc.) of this directory.
  143. #    MAKEFILE    name of makefile to create
  144. #    SUBTYPE        additional keyword telling what sort of library
  145. #            this is:  Sprite, X, etc.
  146. #
  147.  
  148. #
  149. # Argument processing.  (Generalized form, even though just one flag so far.)
  150. #
  151. while ($#argv >= 1)
  152.     if ("$1" == '-x') then
  153.     set echo
  154.     endif
  155.     shift
  156. end
  157.  
  158. set subtype=$SUBTYPE
  159. set lib=$cwd:t
  160. set pref='[a-z_A-Z]'
  161. set machines=($MACHINES)
  162. set domachines = ($DOMACHINES)
  163. set makefile=$MAKEFILE
  164. set distdir=($DISTDIR)
  165.  
  166. if (-e $makefile.proto) then
  167.     set proto=$makefile.proto
  168. else
  169.     set proto="${MKMFDIR}/Makefile.library"
  170. endif
  171.  
  172. echo "Generating a Makefile for library $lib using $proto"
  173.  
  174. set nonomatch
  175. set hdrs =( ${lib}*.h )
  176. if ("$hdrs" == "${lib}*.h") set hdrs=()
  177. set pubHdrs=(`echo $hdrs | sed -e "s/[^ ]*Int.h//g"`)
  178. set allSrcs =( ${pref}*.[cylsp] )
  179. #
  180. # Check to see if there were any sources.  The first check (size == 1)
  181. # is only necessary because the second check will cause an error if
  182. # allSrcs contains more than 1024 bytes.
  183. #
  184. if ($#allSrcs == 1) then
  185.     if ("$allSrcs" == "${pref}*.[cylsp]") set allSrcs=()
  186. endif
  187. set mdsrcs =( *.md/${pref}*.[cylsp] )
  188. if ($#mdsrcs == 1) then
  189.     if ("$mdsrcs" == "*.md/${pref}*.[cylsp]") set mdsrcs=()
  190. endif
  191. set allSrcs=($allSrcs $mdsrcs)
  192. set lints = ( *.lint )
  193. if ("$lints" == "*.lint") set lints=()
  194. set manPages = (*.man)
  195. if ("$manPages" == "*.man") set manPages=()
  196.  
  197. #
  198. # Use sed to substitute various interesting things into the prototype
  199. # makefile. The code below is a bit tricky because some of the variables
  200. # being substituted in can be very long:  if the substitution is passed
  201. # to sed with "-e", the entire variable must fit in a single shell argument,
  202. # with a limit of 1024 characters.  By generating a separate script file
  203. # for the very long variables, the variables get passed through (to the
  204. # script file) as many arguments, which gets around the length problem.
  205. #
  206.  
  207. rm -f mkmf.tmp.sed
  208. echo s,"@@(ALLSRCS)",$allSrcs,g > mkmf.tmp.sed
  209. echo s,"@@(MANPAGES)",$manPages,g > mkmf.tmp.sed2
  210. cat $proto | sed -f mkmf.tmp.sed -f mkmf.tmp.sed2 \
  211.     -e "s,@@(DATE),`date`,g" \
  212.     -e "s,@@(LINTSRCS),$lints,g" \
  213.     -e "s,@@(MACHINES),$machines,g" \
  214.     -e "s,@@(NAME),$lib,g" \
  215.     -e "s,@@(MAKEFILE),$makefile,g" \
  216.     -e "s,@@(PUBHDRS),$pubHdrs,g" \
  217.     -e "s,@@(TEMPLATE),$proto,g" \
  218.     -e "s,@@(TYPE),$subtype,g" \
  219.     -e "s,@@(DISTDIR),$distdir,g" \
  220.     > $makefile
  221. rm -f mkmf.tmp.sed mkmf.tmp.sed2
  222.  
  223. setenv PARENTDIR $cwd
  224. foreach i ($domachines)
  225.     (cd $i.md; mkmf $MKMFFLAGS -f md.mk)
  226. end
  227. @
  228.  
  229.  
  230. 1.20
  231. log
  232. @Modifications for distribution.
  233. @
  234. text
  235. @a11 1
  236. #    DEFTARGET    name of default target
  237. a38 1
  238. set defTarget=($DEFTARGET)
  239. a86 1
  240.     -e "s,@@(DEFTARGET),${defTarget:q},g" \
  241. @
  242.  
  243.  
  244. 1.19
  245. log
  246. @another change for TM -- use single machine if it exists, else \ds3100
  247. @
  248. text
  249. @d41 1
  250. d97 1
  251. @
  252.  
  253.  
  254. 1.18
  255. log
  256. @removed DEFTARGET -- we use $MACHINE now
  257. @
  258. text
  259. @d12 1
  260. d40 1
  261. d88 1
  262. @
  263.  
  264.  
  265. 1.17
  266. log
  267. @added abilty to make specific machine types
  268. @
  269. text
  270. @a11 1
  271. #    DEFTARGET    name of default target
  272. a38 1
  273. set defTarget=($DEFTARGET)
  274. a85 1
  275.     -e "s,@@(DEFTARGET),$defTarget,g" \
  276. @
  277.  
  278.  
  279. 1.16
  280. log
  281. @Use TYPE instead of INSTALLDIR, INSTALLMAN, etc.
  282. @
  283. text
  284. @d12 2
  285. d38 1
  286. d40 1
  287. a49 6
  288. if (" $machines " =~ *\ sun3\ *) then
  289.     set defTarget=sun3
  290. else
  291.     set defTarget=$machines[1]
  292. endif
  293.  
  294. d99 2
  295. a100 1
  296. foreach i ($machines)
  297. @
  298.  
  299.  
  300. 1.15
  301. log
  302. @Various changes to replace old C library entirely with new C library.
  303. @
  304. text
  305. @a33 25
  306. switch ($subtype)
  307.     case sprite:
  308.     set includedir=/sprite/lib/include
  309.     set installdir=/sprite/lib
  310.     set installman=/sprite/doc/ref/lib/$lib
  311.     set lintdir=/sprite/lib/lint
  312.     breaksw
  313.     case x:
  314.     set includedir=/X/lib/include
  315.     set installdir=/X/lib
  316.     set installman=/X/doc/ref/lib/$lib
  317.     set lintdir=/X/lib/lint
  318.     breaksw
  319.     case none:
  320. # These are dummy assignments for libraries used locally by programs
  321. # but never installed.
  322.     set includedir = none
  323.     set installdir = none
  324.     set installman = none
  325.     set lintdir = none
  326.     breaksw
  327.     default:
  328.     echo Unknown library subtype "$subtype"
  329.     exit 1
  330. endsw
  331. a90 4
  332.     -e "s,@@(INCLUDEDIR),$includedir,g" \
  333.     -e "s,@@(INSTALLDIR),$installdir,g" \
  334.     -e "s,@@(INSTALLMAN),$installman,g" \
  335.     -e "s,@@(LINTDIR),$lintdir,g" \
  336. d97 1
  337. @
  338.  
  339.  
  340. 1.14
  341. log
  342. @Allow "none" type, meaning it doesn't get installed.
  343. @
  344. text
  345. @d22 10
  346. d33 1
  347. d36 1
  348. d38 1
  349. a39 1
  350.     set includedir=/sprite/lib/include.new
  351. d42 4
  352. a45 3
  353.     set installdir=/sprite/lib
  354.     set lintdir=/sprite/lib/lint
  355.     set includedir=/a/X/lib/include
  356. d50 1
  357. d52 1
  358. a53 1
  359.     set includedir = none
  360. a58 1
  361. set lib=$cwd:t
  362. d97 2
  363. d112 3
  364. a114 3
  365. cat $proto | sed -f mkmf.tmp.sed \
  366.     -e "s,@@(LIBRARY),$lib,g" \
  367.     -e "s,@@(MACHINES),$machines,g" \
  368. d118 1
  369. a118 1
  370.     -e "s,@@(PUBHDRS),$pubHdrs,g" \
  371. d121 2
  372. d124 1
  373. a125 1
  374.     -e "s,@@(DATE),`date`,g" \
  375. d127 1
  376. a127 1
  377. rm -f mkmf.tmp.sed
  378. @
  379.  
  380.  
  381. 1.13
  382. log
  383. @Eliminate symbolic link:  goofs up renames.
  384. @
  385. text
  386. @d34 7
  387. @
  388.  
  389.  
  390. 1.12
  391. log
  392. @Set up for X stuff.
  393. @
  394. text
  395. @d32 1
  396. a32 1
  397.     set includedir=/X/lib/include
  398. @
  399.  
  400.  
  401. 1.11
  402. log
  403. @No need to look for MAKEFILE or MACHINES.  Also, be more restrictive
  404. on which headers are exported.
  405. @
  406. text
  407. @d18 2
  408. a20 18
  409. # Variables generated here:
  410. #    includedir    place where public header files get installed
  411. #    lib        base library name to create (directories are assumed
  412. #            to be named after the libraries they create): sx, tcl,
  413. #            m, etc.
  414. #    lints        list of ".lint" files;  these are dummy .c files
  415. #            that supply lint information for assembler procedures
  416. #            that lint cannot process.
  417. #    machines    list of machines for which we can target:  needed
  418. #            because env variables can't always be used where
  419. #            variables can.
  420. #    makefile    name of the makefile to create    
  421. #    pref        prefix pattern that files must match to be included
  422. #    proto        name of prototype makefile to use to create $makefile
  423. #    pubHdrs        list of header files that this directory exports to
  424. #            the rest of the world.
  425. #    subtype        subtype of makefile to make (e.g. att, src, local, etc.)
  426. #
  427. d28 5
  428. @
  429.  
  430.  
  431. 1.10
  432. log
  433. @added ability to turn on echoing for all mkmf's invoked.
  434. @
  435. text
  436. @d35 1
  437. a35 1
  438. #    type        type of makefile to make (e.g. att, src, local, etc.)
  439. d38 2
  440. a39 2
  441. set type=$TYPE
  442. switch ($type)
  443. d46 1
  444. a46 1
  445.     echo Unknown library type "$type"
  446. a50 5
  447.  
  448. if ($?MACHINES == 0) then
  449.     echo "No target machines for $lib"
  450.     exit 1
  451. endif
  452. d52 1
  453. a52 4
  454. if ("$machines" == "") then
  455.     echo "No target machines for $lib"
  456.     exit 1
  457. endif
  458. a53 6
  459. if ($?MAKEFILE) then
  460.     set makefile=$MAKEFILE
  461. else
  462.     set makefile=Makefile
  463. endif
  464.  
  465. d69 2
  466. a70 2
  467. set hdrs =( ${pref}*.h )
  468. if ("$hdrs" == "${pref}*.h") set hdrs=()
  469. a118 2
  470.  
  471. pmake dependall
  472. @
  473.  
  474.  
  475. 1.9
  476. log
  477. @Add code to be more careful about long lists of source files.
  478. @
  479. text
  480. @d13 1
  481. d131 1
  482. a131 1
  483.     (cd $i.md; mkmf -f md.mk)
  484. @
  485.  
  486.  
  487. 1.8
  488. log
  489. @Better support for lint, and for dummy lint files (*.lint).
  490. @
  491. text
  492. @d86 8
  493. a93 1
  494. if ("$allSrcs" == "${pref}*.[cylsp]") set allSrcs=()
  495. d95 3
  496. a97 1
  497. if ("$mdsrcs" == "*.md/${pref}*.[cylsp]") set mdsrcs=()
  498. @
  499.  
  500.  
  501. 1.7
  502. log
  503. @Add "type" field to map, pass it through to individual mkmf.*
  504. scripts so they don't have to do their own path-name analysis.
  505. @
  506. text
  507. @d19 1
  508. a19 1
  509. #    type        type of makefile to make (e.g. att, src, local, etc.)
  510. d22 4
  511. a25 4
  512. #            m, etc.    
  513. #    pref        prefix pattern that files must match to be included
  514. #    makefile    name of the makefile to create
  515. #    proto        name of prototype makefile to use to create $makefile
  516. d29 6
  517. d90 2
  518. d113 1
  519. @
  520.  
  521.  
  522. 1.6
  523. log
  524. @(temporarily) install in new include area.
  525. @
  526. text
  527. @d30 2
  528. a31 1
  529. set type=`expr $cwd : '/[^/]*/\([^/]*\)/.*'`
  530. d33 1
  531. a33 1
  532.     case src:
  533. a37 10
  534.     case att:
  535.     set installdir=/att/lib
  536.     set lintdir=/att/lib/lint
  537.     set includedir=/att/lib/include
  538.     breaksw
  539.     case local:
  540.     set installdir=/local/lib
  541.     set lintdir=/local/lib/lint
  542.     set includedir=/local/lib/include
  543.     breaksw
  544. d39 2
  545. a40 5
  546.     set installdir=`echo $cwd | sed -e s,/src,,`
  547.     set installdir=$installdir:h
  548.     set lintdir=$installdir/lint
  549.     set includedir=$installdir/include
  550.     breaksw
  551. @
  552.  
  553.  
  554. 1.5
  555. log
  556. @Changes to handle directories with many many files.
  557. @
  558. text
  559. @d35 1
  560. a35 1
  561.     set includedir=/sprite/lib/include
  562. @
  563.  
  564.  
  565. 1.4
  566. log
  567. @Add stuff for target machines.
  568. @
  569. text
  570. @d97 13
  571. a109 1
  572. cat $proto | sed \
  573. a112 1
  574.     -e "s,@@(ALLSRCS), $allSrcs,g" \
  575. d121 1
  576. @
  577.  
  578.  
  579. 1.3
  580. log
  581. @Forgot to redirect to $makefile rather than Makefile
  582. @
  583. text
  584. @d4 4
  585. a7 2
  586. # from the prototype Makefile.  If ./Makefile.proto exists, use it, else
  587. # use a common prototype.
  588. d9 2
  589. a10 3
  590. # We assume we were invoked from mkmf, thus we don't need to alter the
  591. # path, and MKMFDIR is in the environment to tell us where to find prototype
  592. # makefiles, etc.
  593. d12 7
  594. a18 1
  595. # Variables:
  596. d21 2
  597. a22 1
  598. #            to be named after the libraries they create)
  599. d25 4
  600. a28 1
  601. #    MKMFDIR        directory containing prototype makefiles
  602. d38 3
  603. a40 3
  604.     set installdir=/sprite/att/lib
  605.     set lintdir=/sprite/att/lib/lint
  606.     set includedir=/sprite/att/lib/include
  607. d43 3
  608. a45 3
  609.     set installdir=/sprite/local/lib
  610.     set lintdir=/sprite/local/lib/lint
  611.     set includedir=/sprite/local/lib/include
  612. d57 10
  613. d81 4
  614. a84 28
  615. #
  616. # First figure out what's there by way of .c, .y, .l, .s, .p, .h and .o files
  617. # If any one doesn't have any members, it'll contain the original
  618. # pattern (b/c of nonomatch). We want it to be empty, though, so
  619. # we reset it.
  620. #
  621. set nonomatch
  622. set srcs=( ${pref}*.[cylsp] )
  623. if ("$srcs" == "${pref}*.[cylsp]") set srcs=()
  624. set Hfiles=( ${pref}*.h )
  625. if ("$Hfiles" == "${pref}*.h") set Hfiles=()
  626. rm -f version.o
  627. set Ofiles=( ${pref}*.o )
  628. if ("$Ofiles" == "${pref}*.o") set Ofiles=()
  629. unset nonomatch
  630.  
  631. #
  632. # Merge in any .o files that can be created from local source files but don't
  633. # exist yet. In addition, figure out which .o files may be safely removed
  634. # during a "make clean" and store them in RmOfiles.
  635. #
  636. set RmOfiles=""
  637. if ("$srcs" != "") then
  638.     foreach file ($srcs)
  639.         set file=$file:r.o
  640.         set RmOfiles=($RmOfiles $file)
  641.         if (! -e $file) set Ofiles=($Ofiles $file)
  642.     end
  643. d87 9
  644. a95 1
  645. set PubHfiles=(`echo $Hfiles | sed -e "s/${pref}*Int\.h//g"`)
  646. a96 2
  647. if (-e $makefile) mv $makefile $makefile.$$~
  648.  
  649. d99 4
  650. a102 5
  651.     -e "s,@@(OBJS),$Ofiles,g" \
  652.     -e "s,@@(CLEANOBJS),$RmOfiles,g" \
  653.     -e "s,@@(SRCS),$srcs,g" \
  654.     -e "s,@@(HDRS),$Hfiles,g" \
  655.     -e "s,@@(PUBHDRS),$PubHfiles,g" \
  656. d104 1
  657. d106 1
  658. a106 1
  659.     -e "s,@@(INCLUDEDIR),$includedir,g" \
  660. a108 1
  661.     -e "s,@@(MAKEFILE),$makefile,g" \
  662. d110 6
  663. @
  664.  
  665.  
  666. 1.2
  667. log
  668. @Switched to MKMFNF
  669. @
  670. text
  671. @d107 1
  672. a107 1
  673.     > Makefile
  674. @
  675.  
  676.  
  677. 1.1
  678. log
  679. @Initial revision
  680. @
  681. text
  682. @d3 3
  683. a5 2
  684. # A script to generate (or regenerate) a module Makefile
  685. # from the prototype Makefile.
  686. d7 41
  687. a47 7
  688. set module=`pwd`
  689.     
  690. set root = $module:h; set root = $root:h; set root = $root:h
  691. set module=$module:t
  692. if ($root != /sprite) then
  693.     set otherh = '${ROOT}/lib/include'
  694.     set otherlint = '${ROOT}/lib/lint'
  695. d49 1
  696. a49 2
  697.     set otherh = ""
  698.     set otherlint = ""
  699. d52 5
  700. a56 1
  701. echo "Generating a Makefile for library: $module within $root."
  702. d58 8
  703. a65 1
  704. unalias ls
  705. d67 8
  706. a74 4
  707. set Cfiles=`ls [a-z_]*.c`
  708. set Hfiles=`ls [a-z_]*.h`
  709. set Sfiles=`ls [a-z_]*.s`
  710. set Stubfiles=`ls [a-z_]*Stubs.s`
  711. d76 12
  712. a87 7
  713. set Ofiles=`echo $Cfiles $Sfiles | sed -e "s/\.c/.o/g" -e "s/\.s/.o/g"`
  714. set POfiles=`echo $Cfiles $Sfiles | sed -e "s/\.c/.po/g" -e "s/\.s/.o/g"`
  715. set ExternalHfiles=`echo $Hfiles | sed -e "s/[a-zA-Z]*Int\.h//g"`
  716. if ("$ExternalHfiles" == "") then
  717.     set extString = "# EXTERNHDRS ="
  718. else
  719.     set extString = "EXTERNHDRS = $ExternalHfiles"
  720. d90 1
  721. a90 1
  722. if (-e Makefile) mv Makefile Makefile.$$~
  723. d92 1
  724. a92 5
  725. if (-e Makefile.proto) then
  726.     set proto=Makefile.proto
  727. else
  728.     set proto=/sprite/src/lib/makemake/Makefile.library
  729. endif
  730. d94 13
  731. a106 13
  732. cat $proto | \
  733.     sed -e "s@@^LIBROOT.*@@LIBROOT = $root@@" \
  734.     -e "s@@^MODULE.*@@MODULE = $module@@" \
  735.     -e "s@@^OTHERH.*@@OTHERH = $otherh@@" \
  736.     -e "s@@^OTHERLINT.*@@OTHERLINT = $otherlint@@" \
  737.     -e "s@@^CSRCS.*@@CSRCS = $Cfiles@@" \
  738.     -e "s@@^ASMSRCS.*@@ASMSRCS = $Sfiles@@" \
  739.     -e "s@@^STUBS.*@@STUBS = $Stubfiles@@" \
  740.     -e "s@@^HDRS.*@@HDRS = $Hfiles@@" \
  741.     -e "s@@^EXTERNHDRS.*@@$extString@@" \
  742.     -e "s@@^OBJS.*@@OBJS = $Ofiles@@" \
  743.     -e "s@@^POBJS.*@@POBJS = $POfiles@@" \
  744.     -e "s@@..LINT./$module\.ln@@@@" \
  745. a107 14
  746.  
  747. if (-e Makefile.sed) then
  748.     echo "Modifying with Makefile.sed."
  749.     mv Makefile{,.$$~~}
  750.     sed -f Makefile.sed Makefile.$$~~ > Makefile
  751.     rm Makefile.$$~~
  752. endif
  753.  
  754. if (-e Makefile.ex) then
  755.     echo "Modifying with Makefile.ex."
  756.     ex - Makefile < Makefile.ex
  757. endif
  758.  
  759. make depend
  760. @
  761.